package com.blue.vo.workflow;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 流程节点表
 *
 * @author nanjie.chen
 * @email 15696471158@163.com
 * @date 2025-03-07
 */
@Data
public class NodeVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "流程节点ID")
    private String id;

    @Schema(description = "流程定义ID")
    private String definitionId;

    @Schema(description = "节点名称")
    private String nodeNm;

    @Schema(description = "流程节点类型(0-开始节点,1-中间节点,2-结束节点)")
    private String nodeType;

    @Schema(description = "处理人类型(0-user,1-role+dept,2-role,3-dept,4-leader)")
    private String assigneeType;

    @Schema(description = "处理人值(userId/roleId/deptId)")
    private String assigneeValue;

    @Schema(description = "退回策略(0-退回到第一节点/1-退回到上一节点)")
    private String backStrategy;

    @Schema(description = "最外层节点ID(指网关节点)")
    private String outNodeId;

    @Schema(description = "条件节点")
    private List<NodeVO> conditionNodes;

    @Schema(description = "子节点")
    private NodeVO childNode;

    @Schema(description = "节点条件")
    private List<NodeConditionVO> nodeConditions;

    @Schema(description = "前端节点ID")
    private String nodeId;

}
